part of 'lexical_item.dart';

class WordTags extends Equatable {
  const WordTags({
    required this.cefrLevel,
    this.opalS = false,
    this.opalW = false,
  });

  final CefrLevel? cefrLevel;
  final bool opalS;
  final bool opalW;

  @override
  List<Object?> get props {
    return [
      cefrLevel,
      opalS,
      opalW,
    ];
  }

  WordTags copyWith({
    CefrLevel? Function()? cefrLevel,
    bool Function()? opalS,
    bool Function()? opalW,
  }) {
    return WordTags(
      cefrLevel: cefrLevel == null ? this.cefrLevel : cefrLevel(),
      opalS: opalS == null ? this.opalS : opalS(),
      opalW: opalW == null ? this.opalW : opalW(),
    );
  }
}
